package cn.hy.today;


class Solution_2048 {

    /**
     * 题目给一个整数 n，要求返回严格大于 n的最小数值平衡数，我们直接按照题目的要求进行模拟即可。
     * 大于10 6 次方的最大的平衡 1224444
     */
    public int nextBeautifulNumber(int n) {
        for (int i = n + 1; i <= 1244444; i++) {
            if (isBalance(i)) {
                return i;
            }
        }
        return -1;
    }


    private boolean isBalance(int x) {
        int[] count = new int[10];
        while (x > 0) {
            count[x % 10]++;
            x /= 10;
        }
        for (int d = 0; d < 10; d++) {
            if (count[d] > 0 && count[d] != d) {
                return false;
            }
        }
        return true;
    }
}